package com.gitee.chili.leisure.core;

import com.gitee.chili.leisure.model.MessageCmdEnum;

import java.lang.annotation.*;

/**
 * 标注方法处理器
 *
 * 处理器的处理时间
 *
 * @author week solider
 * @since 2020.08.28
 */

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Handler {

    /**
     * 命令指令 方便精准传递给消息处理器
     */
    MessageCmdEnum.Command cmd();

    /**
     * 描述方法特性
     */
    String desc() default "";

    /**
     * 消息接受者类型，默认使用 {@code netty} 的方式
     */
    ReceiverType[] receivers() default ReceiverType.NETTY_SERVER_RECEIVER;

    /**
     * 是否需要认证
     */
    boolean isAuthentication() default false;
}
